home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group97a.txt / 000083_icon-group-sender _Thu Mar 13 14:53:19 1997.msg < prev    next >
Internet Message Format  |  2000-09-20  |  5KB

  1. Received: by cheltenham.cs.arizona.edu; Fri, 14 Mar 1997 10:40:05 MST
  2. To: icon-group@cs.arizona.edu
  3. Date: Thu, 13 Mar 1997 14:53:19 -0500
  4. From: Jan Galkowski <jan@digicomp.com>
  5. Message-Id: <33285B2F.41C67EA6@digicomp.com>
  6. Organization: Digicomp Research Corporation
  7. Sender: icon-group-request@cs.arizona.edu
  8. References: <Pine.SGI.3.95.970305103012.2721A-100000@shellx.best.com>, <01bc2d80$5cac97d0$5f030514@dschauma>
  9. Subject: Re: Recursive directory traversal in Icon
  10. Errors-To: icon-group-errors@cs.arizona.edu
  11. Status: RO
  12. Content-Length: 4485
  13.  
  14. Dave Schaumann wrote:
  15. > Brian Rogoff <bpr@best.com> wrote in article
  16. > <Pine.SGI.3.95.970305103012.2721A-100000@shellx.best.com>...
  17. > > Hi,
  18. > >       I've been reading the Icon web references, trying to decide if I
  19. > > should forsake Perl in favor of Icon, and I have two questions.
  20. > >
  21.  
  22. [snip]
  23.  
  24. > > (2) Why no module system?
  25.  
  26.  While it speculating on intent may be interesting, it's usually a waste
  27.  of time.  Better, IMO, is looking at the product and seeing what it has
  28.  and provides and what it doesn't.  A "module system" is essentially a
  29.  device for managing globs of text, naming them, and performing controlled
  30.  substitutions upon them.  (I don't mean "glob" in any Unix-ish or Perl-ish
  31.  sense.)  To only slightly exaggerate, there's nothing in any "module
  32.  system" which can't be modelled in a proper implementation of the lambda
  33.  calculus, e.g., in SCHEME.  So, one possible explanation is that a 
  34.  "module system" is in some important sense excess baggage.
  35.  
  36.  [The idea of using the lambda calculus for a "macro level language" isn't
  37.  original--  Peter Henderson and a coworker documented such a system for
  38.  reconstructing a very large and old FORTRAN program someplace in 
  39.  _Software: Practise and Experience_ in the mid-'80s.]
  40.  
  41. > I can't answer this directly.  However, there is Idol, which has been
  42. > described
  43. > as "Object Oriented Icon".  That's pretty much all I know about it, so I
  44. > don't
  45. > know if it supports modules.  I assume that "Object Oriented" means
  46. > inheritence,
  47. > which means classes, which means some form of encapsulation/data hiding...
  48. > I agree with your point, though.  Another big weakness of Icon is that
  49. > there's
  50. > just too much stuff that goes in the global name space.
  51.  
  52. With Icon's power and support of functions and procedures as first-class
  53. objects, I wonder whether when we all -- and I very much include myself --
  54. feel the pressure for adding more to Icon, we just aren't being 
  55. imaginative enough in using the tool we're given.  Yes, we're products of
  56. a community of programming artists and so fads and traditions weigh
  57. heavily upon our practice.  But Icon isn't a run-of-the-mill language
  58. by any means, and it is freed of many of the constraints which the usual
  59. languages are.  C.A.R.Hoare (I believe) once wrote a position paper on
  60. the then-evolving programming language Ada entitled "Generalzing Ada
  61. by removing limitations".
  62.  
  63. I'm investing in this post so heavily because I am on a search for such
  64. a means of expression which is strictly supported by the existing
  65. Version 9.3 of Icon, yet addresses some of these concerns regarding
  66. big programs and modules and all that.  In fact, one of my reasons
  67. for asking after people's "biggest Icon programs" was to see how far
  68. people had carried Icon itself.
  69.  
  70. One could, for example, without that much effort and _without_ 
  71. clobbering the problem by using excessive string invocation, imitate
  72. all the packaging and generic facilities of Ada95, leaving aside
  73. Ada's tasking facilities for the moment. (They could be modelled,
  74. too, but that discussion, I believe, degenerates into one over
  75. what constitutes an adequate simulation of asychronicity.)
  76.  
  77. Similarly, there really is no compelling reason to include events 
  78. and event-handlers in Icon simply because one has popular languages
  79. like Tcl/Tk, Visual Basic, etc., which offer built-in events and 
  80. support a certain style of GUI programming.  In the small, one can 
  81. imitate these facilities and in the large I really think that style
  82. of GUI design deserves challenging: Not all applications are Web
  83. pages, after all, and introducing problems of synchronization
  84. and data sharing in contexts which really doesn't need them
  85. hardly seems like progress.  Besudes, at some level, Tcl/Tk and
  86. Visual Basic embody a polling loop in their design, even if it
  87. is a machine interrupt handler.  At least Icon provides an
  88. explicit one.
  89.  
  90. I'm sorry for going on so long, but I invite people to challenge
  91. themselves to think how clear and neat expressions of what they
  92. might want in this area could be expressed in the _existing_
  93. Icon language.  This isn't because the Icon definition would
  94. be that hard to change, but because IMO programming languages
  95. are supposed to be tools to think with creatively, not be simply
  96. a sugar-coated subroutine library.
  97.  
  98. > -Dave
  99.  
  100. -- 
  101.  Jan Theodore Galkowski, 
  102.  developer, tool & numerical methods elf
  103.    Digicomp Research Corporation,
  104.    Ithaca, NY 14850-5720
  105.  jan@digicomp.com 
  106.  (also jtgalkowski@worldnet.att.net)
  107.